/*
isdigit(char)   判断字符内容是否为数字，是则返回真
int isalpha(int c)判断字符是否为字母，是则返回非零值
n=int(ch-'0')  将字符ch转int
int atoi(char*)  字符串转int
double atof(char*)  字符串转double
char* string.c_str()  string转char*
int tolower(int c)转换给定的字母为小写。
int toupper(int c)转换给定的字母为大写。

char *strcpy(char *str1,char *str2)--将str2指向的字符串连同字符串结束符完全复制到str1中
--str2 是字符串的起始地址，可以是字符串常量，字符数组名或者字符指针
--str1只能是字符数组名或一级字符指针，两个字符串所指内存区域不可以重叠
--strcpy要求str1有足够的内存空间，否则在复制字符串str2时会溢出，越界

char *strncpy(char *str1,char *str2,n)
--将源字符串指针str2的前n个字符复制到目标字符串指针str1中
--strncpy不像strcpy那样将字符串结束符'\0'也复制过去，因此在复制结束之后需要自己添加
--两个字符串所指内存区域不可以重叠，但是必须有足够的空间存放n个字符

void *memcpy(void *destin, void *source, unsigned n)
--以source指向的地址为起点，将连续的n个字节数据，复制到以destin指向的地址为起点的内存中
--数据长度(第三个参数)的单位是字节(1byte = 8bit)
--注意该函数有一个返回值，类型是void*，是一个指向destin的指针


二维数组用vector建立
如  vector<vector<int>>v(n,vector(m))
指定长n，宽m，默认所有元素赋值为0
若是定义成数组，则为随机值，某些情况下要手动初始化



bzero函数
void bzero（void *s, int n）
头文件：#include <string.h>
功能：将字符串s的前n个字节置为0，一般来说n通常取sizeof(s),将整块空间清零

memset()函数
void *memset(void *s,  int c, size_t n)
作用是在一段内存块中填充某个给定的值，它对较大的结构体或数组进行清零操作的一种最快方法
memset(a, 0, sizeof(a))

#include <ctype.h>
int isalpha(int c);
传入一个字符，如果是英文字母就返回非零值
返回值：0-不是字母，非0-是字母


assert()
assert()是宏，而不是函数。在C的assert.h头文件中
作用是如果它的条件返回错误，则终止程序执行 void assert( int expression )
assert的作用是先计算表达式expression，如果其值为假（即为0）
那么它先向标准错误流stderr打印一条出错信息，然后通过调用abort来终止程序运行
否则，assert()无任何作用。宏assert（）一般用于确认程序的正常操作，其中表达式构造无错时才为真值
完成调试后，不必从源代码中删除assert()语句，因为宏NDEBUG有定义时，宏assert()的定义为空
如：#define NDEBUG

*/
